package com.nowcoder.community.util;

import com.nowcoder.community.entity.User;
import org.springframework.stereotype.Component;

/**
 * 持有用户信息，用户登录后，就根据这个组件来获取user（重要：登录后的操作 都用到）
 * 这个用户信息在controller层或者模板中 会反复用到，用于代替session对象
 */
@Component
public class HostHolder {
    //用ThreadLocal进行线程隔离，因为每一个用户对应一个线程，用户登录后在页面上显示的个人信息是不一样的，
    // 即User里的信息是不一样的
    private ThreadLocal<User> users = new ThreadLocal<>();

    public void setUser(User user) {
        users.set(user);
    }

    public User getUser() {
        return users.get();
    }

    public void clear() {
        users.remove();
    }

}
